package youleche.com.idao;

import java.sql.Connection;
import java.util.List;

import youleche.com.model.MRentVehicleInfo;

public interface IRentVehicleInfo {
	/**
	 * 添加租车信息
	 * @param con 数据库连接
	 * @param rentVehicleInfo 租车信息
	 * @return 返回影响的行数
	 * @throws Exception 异常
	 */
	public int addRentVehicleInfo(Connection con, MRentVehicleInfo rentVehicleInfo) throws Exception;
	
	/**
	 * 根据id得到租车信息
	 * @param con 数据库连接
	 * @param rentId 租车ID
	 * @return 返回租车信息
	 * @throws Exception 异常
	 */
	public MRentVehicleInfo getRentVehicleInfoById(Connection con, String rentId) throws Exception;
	
	/**
	 * 根据id得到推荐租车信息
	 * @param con 数据库连接
	 * @return 返回租车信息
	 * @throws Exception 异常
	 */
	public MRentVehicleInfo getRecommendRentVehicleInfo(Connection con) throws Exception;
	
	/**
	 * 得到用户今天发布的租车信息数量
	 * @param con 数据库连接
	 * @param releaseId 发布者id
	 * @return 返回租车信息数量
	 * @throws Exception 异常
	 */
	public String getRentVehicleInfoByUserTodayNums(Connection con, String releaseId) throws Exception;
	
	/**
	 * 获取租车信息列表
	 * @param con 数据库连接
	 * @param startIndex 开始索引
	 * @param endIndex 每次获取条数
	 * @return 返回列表信息
	 * @throws Exception 异常
	 */
	public List<MRentVehicleInfo> getRentVehicleInfoForList(Connection con, String startIndex, String endIndex, String orderBy) throws Exception;
	
	/**
	 * 获取租车信息总条数
	 * @param con 数据库连接
	 * @return 返回租车信息总条数
	 * @throws Exception 异常
	 */
	public int getRentInfoCount(Connection con) throws Exception;
	
	/**
	 * 根据租车id更新图片信息
	 * @param con 数据库连接
	 * @param imageId 图片ID
	 * @param rentId 租车信息id
	 * @return 返回更新影响的行数
	 * @throws Exception 异常
	 */
	public int updateImageIdByRentId(Connection con, String imageId, String rentId) throws Exception;
	
	/**根据用户名得到租车信息总条数
	 * 
	 * @param con 数据库连接
	 * @param userName 用户名
	 * @return 返回租车信息总条数
	 * @throws Exception 异常
	 */
	public int getRentInfoCountByUserName(Connection con, String userName) throws Exception;
	
	/**
	 * 根据用户名获取租车信息列表
	 * @param con 数据库连接
	 * @param startIndex 开始索引
	 * @param endIndex 每次获取条数
	 * @param userName 用户名
	 * @return 返回列表信息
	 * @throws Exception 异常
	 */
	public List<MRentVehicleInfo> getRentVehicleInfoForListByUserName(Connection con, String startIndex, String endIndex, String userName) throws Exception;
	
	/**
	 * 根据租车ID删除租车信息
	 * @param con 数据库连接
	 * @param id Id
	 * @return 返回影响的行数
	 * @throws Exception 异常
	 */
	public int deleteRentInfoById(Connection con, String id) throws Exception;
	
	/**
	 * 根据id更新相关度（访问量）
	 * @param con 数据连接
	 * @param id id
	 * @param a4 相关度
	 * @return 返回更新影响的行数
	 * @throws exception 异常
	 */
	public int updateA4ById(Connection con, String id, int a4) throws Exception;
	
	/**
	 * 获取下一条车辆信息
	 * @param con 数据库连接
	 * @param addTime 本条车辆信息添加时间
	 * @return 返回租车信息
	 * @throws Exception 异常
	 */
	public MRentVehicleInfo getNextVehicleInfo(Connection con, String addTime) throws Exception;
	
	/**
	 * 获取上一条车辆信息
	 * @param con 数据库连接
	 * @param addTime 本条车辆信息添加时间
	 * @return 返回租车信息
	 * @throws Exception 异常
	 */
	public MRentVehicleInfo getPreVehicleInfo(Connection con, String addTime) throws Exception;
	
}
